(Fredraw_display): Redraw all visible frames.
authorRichard M. Stallman <rms@gnu.org>
Sun, 6 Jun 1993 06:46:58 +0000 (06:46 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sun, 6 Jun 1993 06:46:58 +0000 (06:46 +0000)
(redraw_garbaged_frames): New function.

src/dispnew.c

index 9f57065c2e4d42e5b8aefc8d3fe84347abcec23e..7c1da91986d3a6b049f0949cf645b4d8c9637099 100644 (file)
@@ -201,26 +201,26 @@ DEFUN ("redraw-display", Fredraw_display, Sredraw_display, 0, 0, "",
   Lisp_Object tail, frame;
 
   FOR_EACH_FRAME (tail, frame)
-    /* If we simply redrew all visible frames, whether or not they
-       were garbaged, then this would make all frames clear and
-       nredraw whenever a new frame is created or an existing frame
-       is de-iconified; those events set the global frame_garbaged
-       flag, to which redisplay responds by calling this function.
-       
-       This used to redraw all visible frames; the only advantage of
-       that approach is that if a frame changes from invisible to
-       visible without setting its garbaged flag, it still gets
-       redisplayed.  But that should never happen; since invisible
-       frames are not updated, they should always be marked as
-       garbaged when they become visible again.  If that doesn't
-       happen, it's a bug in the visibility code, not a bug here.  */
-    if (FRAME_VISIBLE_P (XFRAME (frame))
-       && FRAME_GARBAGED_P (XFRAME (frame)))
+    if (FRAME_VISIBLE_P (XFRAME (frame)))
       Fredraw_frame (frame);
 
   return Qnil;
 }
 
+/* This is used when frame_garbaged is set.
+   Redraw the individual frames marked as garbaged.  */
+
+void
+redraw_garbaged_frames ()
+{
+  Lisp_Object tail, frame;
+
+  FOR_EACH_FRAME (tail, frame)
+    if (FRAME_VISIBLE_P (XFRAME (frame))
+       && FRAME_GARBAGED_P (XFRAME (frame)))
+      Fredraw_frame (frame);
+}
+
 \f
 static struct frame_glyphs *
 make_frame_glyphs (frame, empty)